<?php
//方法修饰符有：static final abstract
// //static 静态的
// class Student{
//     public static $name="张三";//静态属性
//     static public function show(){
//         echo '我是一个静态方法';
//     }
// }
// echo Student::$name;
// Student::show();

//统计在线人数
// class Student{
//     private static $num=0; //静态变量,在内存中只有一份
//     public function __construct()
//     {
//         self::$num++; //self表示所在类的类名
//     }
//     public function __destruct()
//     {
//         self::$num--;
//     }
//     public function show(){
//         echo "在线人数:".self::$num;
//     }
// }
// $stu1=new Student();
// $stu2=new Student();
// $stu3=new Student();
// $stu3->show();
// unset($stu1); //执行unset()自动调用销毁函数
// $stu3->show();

//abstract:抽象的
// abstract修饰类，叫抽象类
// 只有方法的声明没有方法的实现叫做抽象方法
//抽象类的特点不能被实例化
//类中没有抽象的方法也可以声明称抽象类，用来阻止类的实例化
// abstract class Student{
//     public abstract function show();//抽象方法 只有声明没有实现
//     public abstract function say();
// }
// class child extends Student {
//     public function show(){
//         echo "jdad";
//     }
//     public function say(){
//         echo "dada";
//     }
// }
// // new Student();
// $stu=new child ();
// $stu->show();

//接口
//如果一个类中所有的方法都是抽象方法，那么这个抽象类可以声明成接口
interface Student {
    function say();
    function speak();
}
//实现接口
class Child implements Student{
    public function say(){
        echo "hjdja";
    }
    public function speak()
    {
       echo "ys"; 
    }
}
$stu=new Child();
$stu->say()
?>